/*
 把手放在键盘上，稍不注意就会往右错一位。这样的话，Q就会变成W，J会变成K等。
 输入一个错位后敲出的字符串，输出打字员本来想打出的句子。
 样例输入：O S, GOMR YPFSU/
 样例输出：I AM FINE TODAY.
 */
package com.yuan.algorithms.Algorithm_1;

import java.util.Scanner;

public class 键盘错位还原 {

    public static void main(String[] args) {
        char[] test = {'`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\\', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '\'', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/'};
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String n = sc.nextLine();
            for (int i = 0; i < n.length(); i++) {
                for (int j = 0; j < test.length; j++) {
                    if (n.charAt(i) == test[j] || n.charAt(i) == test[j] - 32) {
                        if (test[j - 1] >= 65 && test[j - 1] <= 90 || test[j - 1] >= 97 && test[j - 1] <= 122) {
                            System.out.print((char) (test[j - 1] - 32));
                        } else {
                            System.out.print(test[j - 1]);
                        }
                        break;
                    } else if (j == test.length - 1) {
                        System.out.print(n.charAt(i));
                    }
                }
            }
            System.out.println();
        }
    }

}
